import router from '@/router'
import store from '@/store'

router.beforeEach(async(to, from, next) => {
  // 写法一
  const url = to.path
  const token = store.getters.token
  const whiteList = ['/login', '/test', '/404']
  // 有登录 去登录页面  跳首页
  if (token && url === '/login') {
    next('/')
  }
  // 有登录不去登录放行
  if (token && url !== '/login') {
    // 每次进入页面之前都会经过导航守卫
    // 在每个页面进入之前都拿到用户数据
    // Ovjct.keys() 将对象转化成一个数组   数组长度为零  就是空对象
    if (Object.keys(store.state.user.profile).length === 0) {
      await store.dispatch('user/getProfile')
    }
    next()
  }

  // 没有登录  去白名单放行
  if (!token && whiteList.indexOf(url) !== -1) {
    next()
  }
  // 没有登录，不去百名 跳首页
  if (!token && whiteList.indexOf(url) === -1) {
    next('login')
  }
//   // 写法二
//   // 是否登录了
//   if (store.getters.token) {
//     // 已经登录
//     // 登录过后再进入登录页面就跳首页
//     if (to.path === '/login') {
//       next('/')
//     } else {
//       next()
//     }
//   } else {
//     // 如果没有登录
//     // 白名单  判断是否允许非登录用户访问的白名单
//     const whiteList = ['/login', '/test', '/404']
//     if (whiteList.indexOf(to.path) !== -1) {
//       // 在白名单内随便进
//       next()
//     } else {
//       // 你在白名单内 需要跳到登录页
//       next('/login')
//     }
//   }
})
